Crate gix_transport
source ·Expand description
An implementation of the git
transport layer, abstracting over all of its versions, providing
connect()
to establish a connection given a repository URL.
All git transports are supported, including ssh
, git
, http
and https
, as well as local repository paths.
§Feature Flags
§Mutually Exclusive Client
The client portion of transport can be blocking or async. If none is selected, it will be missing entirely.
Specifying both causes a compile error, preventing the use of --all-features
.
blocking-client
— If set, blocking implementations of the typical git transports become available incrate::client
http-client
— Impliesblocking-client
, and adds support for the http and https transports.http-client-curl
— Implieshttp-client
, and adds support for the http and https transports using the Rust bindings forlibcurl
.http-client-curl-rust-tls
— Implieshttp-client-curl
and enablesrustls
for creatinghttps://
connections.http-client-reqwest-rust-tls
— Stacks withblocking-http-transport-reqwest
and enableshttps://
via therustls
crate.http-client-reqwest-rust-tls-trust-dns
— Stacks withblocking-http-transport-reqwest
and enableshttps://
via therustls
crate. This also makes use oftrust-dns
to avoidgetaddrinfo
, but note it comes with its own problems.http-client-reqwest-native-tls
— Stacks withblocking-http-transport-reqwest
and enableshttps://
via thenative-tls
crate.async-client
— If set, an async implementations of the git transports becomes available incrate::client
. Suitable for implementing your own transports while using git’s way of communication, typically in conjunction with a custom server. Note that the blocking client has a wide range of available transports, with the async version of it supporting only the TCP basedgit
transport leaving you with the responsibility to providing such an implementation offutures-io::AsyncRead/AsyncWrite
yourself.
§Other
serde
— Data structures implementserde::Serialize
andserde::Deserialize
.async-std
— If used in conjunction withasync-client
, theconnect()
method will become available along with supporting the git protocol over TCP, where the TCP stream is created using this crate.
Re-exports§
pub use bstr;
pub use gix_packetline as packetline;
Modules§
- connect
blocking-client
and (blocking-client
, orasync-client
andasync-std
)
Enums§
- The version of the way client and server communicate.
- The kind of service to invoke on the client or the server side.
Traits§
- An error which can tell whether it’s worth retrying to maybe succeed next time.
Functions§
- connect
blocking-client
and (blocking-client
, orasync-client
andasync-std
)A general purpose connector connecting to a repository identified by the givenurl
.